Precision adaptive vehicle trajectory query plan optimization

ABSTRACT

A mechanism is provided in a data processing system for precision adaptive trajectory query plan optimization. The mechanism identifies precision needs based on query instances and maps trajectory point data to the precision needs to form a precision support skeleton data structure. The mechanism generates an optimized query plan and executes the optimized query plan on the precision support skeleton data structure to identify at least one passing trajectory that passes the query. The mechanism then queries the trajectory point data for the at least one passing trajectory.

BACKGROUND

The present application relates generally to an improved data processingapparatus and method and more specifically to mechanisms for precisionadaptive vehicle trajectory query plan optimization.

Vehicle trajectory query is a fundamental function in connected vehiclesolutions, while tremendous data size is a very big challenge for bothquery accuracy and performance. Such an application may considergigabytes of data per day and terabytes of data per month for 10,000vehicles.

Indexing is a widely used technology approach in both relationaldatabases and No-SQL (no Structured Query Language) databases toaccelerate queries. A database index is a data structure that improvesthe speed of data retrieval operations on a database table at the costof additional writes and storage space to maintain the index datastructure. Indexes are used to quickly locate data without having tosearch every row in a database table every time a database table isaccessed. Indexes can be created using one or more columns of a databasetable, providing the basis for both rapid random lookups and efficientaccess of ordered records.

A bitmap index is a special kind of index that stores the bulk of itsdata as bit arrays (bitmaps) and answers most queries by performingbitwise logical operations on these bitmaps. The most commonly usedindexes, such as B+trees, are most efficient if the values they index donot repeat or repeat a smaller number of times. In contrast, the bitmapindex is designed for cases where the values of a variable repeat veryfrequently. For example, the gender field in a customer database usuallycontains at most three distinct values: male, female or other. For suchvariables, the bitmap index can have a significant performance advantageover the commonly used trees. A reverse key index (i.e., R+tree)reverses the key value before entering it in the index. E.g., the value24538 becomes 83542 in the index. Reversing the key value isparticularly useful for indexing data such as sequence numbers, wherenew key values monotonically increase.

SUMMARY

In one illustrative embodiment, a method, in a data processing system,is provided for precision adaptive trajectory query plan optimization.The method comprises identifying precision needs based on queryinstances and mapping trajectory point data to the precision needs toform a precision support skeleton data structure. The method furthercomprises generating an optimized query plan and executing the optimizedquery plan on the precision support skeleton data structure to supporttrajectory based queries. The method further comprises querying thetrajectory point data for the at least one passing trajectory.

In other illustrative embodiments, a computer program product comprisinga computer useable or readable medium having a computer readable programis provided. The computer readable program, when executed on a computingdevice, causes the computing device to perform various ones of, andcombinations of, the operations outlined above with regard to the methodillustrative embodiment.

In yet another illustrative embodiment, a system/apparatus is provided.The system/apparatus may comprise one or more processors and a memorycoupled to the one or more processors. The memory may compriseinstructions which, when executed by the one or more processors, causethe one or more processors to perform various ones of, and combinationsof, the operations outlined above with regard to the method illustrativeembodiment.

These and other features and advantages of the present invention will bedescribed in, or will become apparent to those of ordinary skill in theart in view of, the following detailed description of the exampleembodiments of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention, as well as a preferred mode of use and further objectivesand advantages thereof, will best be understood by reference to thefollowing detailed description of illustrative embodiments when read inconjunction with the accompanying drawings, wherein:

FIG. 1 is an example block diagram of a computing device in whichaspects of the illustrative embodiments may be implemented;

FIG. 2 depicts an example of road based indexing on spatial information;

FIG. 3 depicts an example of road based indexing on temporalinformation;

FIG. 4 is a block diagram illustrating a system for precision adaptivevehicle trajectory query plan optimization in accordance with anillustrative embodiment;

FIG. 5A depicts a temporal precision support skeleton data structure inaccordance with an illustrative embodiment;

FIG. 5B depicts a spatial precision support skeleton data structure inaccordance with an illustrative embodiment;

FIG. 6 illustrates enhancing the precision support skeletons to form aspatial-temporal precision support skeleton data structure in accordancewith an illustrative embodiment;

FIG. 7A illustrates temporal precision support for a vehicle trajectoryin accordance with an illustrative embodiment;

FIG. 7B illustrates spatial precision support for a vehicle trajectoryin accordance with an illustrative embodiment;

FIG. 7C illustrates spatial-temporal precision support for a vehicletrajectory in accordance with an illustrative embodiment;

FIG. 8 illustrates an example of query internal processing for a systemwith precision adaptive trajectory query plan optimization in accordancewith an illustrative embodiment;

FIG. 9 illustrates a data structure to include spatial-temporalprecision in accordance with an illustrative embodiment;

FIG. 10 is a flowchart illustrating operation of a system for precisionadaptive trajectory query plan optimization in accordance with anillustrative embodiment; and

FIG. 11 is a flowchart illustrating operation of performing a query withprecision adaptive trajectory query plan optimization in accordance withan illustrative embodiment.

DETAILED DESCRIPTION

The connected vehicle domain involves a massive amount of vehicletrajectory data. Queries of vehicle trajectory data require both highperformance and scalability. For the connected vehicle domain, queryplans with better scalability are critical for acceptable performance.No-SQL databases are widely used. Relational database warehouses arealso widely used, especially for existing connected vehicle solutions.With R+tree indexing, data structures are fixed, and refractory isunacceptable. Indexing logic is fixed and predefined. Dynamic indexinghas unacceptable performance. Therefore, the index is conventionallybuilt statically. Indexing targets are fixed (one column or acombination of columns). Few columns can bet set with indexing.

Time-series related queries are supported well in No-SQL. An exampletime-series related query is, “where was a car at 20:30 last night?” Theconnected vehicle (CV) domain requires more queries beyond time-series.For example, a query may ask, “which cars passed a point of interest(POI) twice?” No-SQL is often used to store a massive amount of rawdata. Queries using No-SQL are always too detailed or get much more datathan the query actually needs.

The illustrative embodiments provide a mechanism for precision adaptivevehicle trajectory query plan optimization. The mechanism uses a smallersize abstract feature and employs a faster route algorithm to locate rawdata in a larger data repository. The mechanism is made up of componentsfor precision identification, extraction and transformation. Themechanism performs precision adaptive query plan optimization to handlevehicle trajectory queries upon various customer query needs.

Before beginning the discussion of the various aspects of theillustrative embodiments, it should first be appreciated that throughoutthis description the term “mechanism” will be used to refer to elementsof the present invention that perform various operations, functions, andthe like. A “mechanism,” as the term is used herein, may be animplementation of the functions or aspects of the illustrativeembodiments in the form of an apparatus, a procedure, or a computerprogram product. In the case of a procedure, the procedure isimplemented by one or more devices, apparatus, computers, dataprocessing systems, or the like. In the case of a computer programproduct, the logic represented by computer code or instructions embodiedin or on the computer program product is executed by one or morehardware devices in order to implement the functionality or perform theoperations associated with the specific “mechanism.” Thus, themechanisms described herein may be implemented as specialized hardware,software executing on general purpose hardware, software instructionsstored on a medium such that the instructions are readily executable byspecialized or general purpose hardware, a procedure or method forexecuting the functions, or a combination of any of the above.

The present description and claims may make use of the terms “a,” “atleast one of,” and “one or more of” with regard to particular featuresand elements of the illustrative embodiments. It should be appreciatedthat these terms and phrases are intended to state that there is atleast one of the particular feature or element present in the particularillustrative embodiment, but that more than one can also be present.That is, these terms/phrases are not intended to limit the descriptionor claims to a single feature/element being present or require that aplurality of such features/elements be present. To the contrary, theseterms/phrases only require at least a single feature/element with thepossibility of a plurality of such features/elements being within thescope of the description and claims.

In addition, it should be appreciated that the following descriptionuses a plurality of various examples for various elements of theillustrative embodiments to further illustrate example implementationsof the illustrative embodiments and to aid in the understanding of themechanisms of the illustrative embodiments. These examples intended tobe non-limiting and are not exhaustive of the various possibilities forimplementing the mechanisms of the illustrative embodiments. It will beapparent to those of ordinary skill in the art in view of the presentdescription that there are many other alternative implementations forthese various elements that may be utilized in addition to, or inreplacement of, the examples provided herein without departing from thespirit and scope of the present invention.

The illustrative embodiments may be utilized in many different types ofdata processing environments. In order to provide a context for thedescription of the specific elements and functionality of theillustrative embodiments, FIG. 1 is provided hereafter as an exampleenvironment in which aspects of the illustrative embodiments may beimplemented. It should be appreciated that FIG. 1 is only an example andis not intended to assert or imply any limitation with regard to theenvironments in which aspects or embodiments of the present inventionmay be implemented. Many modifications to the depicted environments maybe made without departing from the spirit and scope of the presentinvention.

FIG. 1 is a block diagram of an example data processing system in whichaspects of the illustrative embodiments may be implemented. Dataprocessing system 100 is an example of a computer in which computerusable code or instructions implementing the processes for illustrativeembodiments of the present invention may be located.

In the depicted example, data processing system 100 employs a hubarchitecture including north bridge and memory controller hub (NB/MCH)102 and south bridge and input/output (I/O) controller hub (SB/ICH) 104.Processing unit 106, main memory 108, and graphics processor 110 areconnected to NB/MCH 102. Graphics processor 110 may be connected toNB/MCH 102 through an accelerated graphics port (AGP).

In the depicted example, local area network (LAN) adapter 112 connectsto SB/ICH 104. Audio adapter 116, keyboard and mouse adapter 120, modem122, read only memory (ROM) 124, hard disk drive (HDD) 126, CD-ROM drive130, universal serial bus (USB) ports and other communication ports 132,and PCI/PCIe devices 134 connect to SB/ICH 104 through bus 138 and bus140. PCI/PCIe devices may include, for example, Ethernet adapters,add-in cards, and PC cards for notebook computers. PCI uses a card buscontroller, while PCIe does not. ROM 124 may be, for example, a flashbasic input/output system (BIOS).

HDD 126 and CD-ROM drive 130 connect to SB/ICH 104 through bus 140. HDD126 and CD-ROM drive 130 may use, for example, an integrated driveelectronics (IDE) or serial advanced technology attachment (SATA)interface. Super I/O (SIO) device 136 may be connected to SB/ICH 104.

An operating system runs on processing unit 106. The operating systemcoordinates and provides control of various components within the dataprocessing system 100 in FIG. 1. As a client, the operating system maybe a commercially available operating system such as Microsoft® Windows7®. An object-oriented programming system, such as the Java™ programmingsystem, may run in conjunction with the operating system and providescalls to the operating system from Java™ programs or applicationsexecuting on data processing system 100.

As a server, data processing system 100 may be, for example, an IBMeServer™ System P® computer system, Power™ processor based computersystem, or the like, running the Advanced Interactive Executive (AIX®)operating system or the LINUX® operating system. Data processing system100 may be a symmetric multiprocessor (SMP) system including a pluralityof processors in processing unit 106. Alternatively, a single processorsystem may be employed.

Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as HDD 126, and may be loaded into main memory 108 for execution byprocessing unit 106. The processes for illustrative embodiments of thepresent invention may be performed by processing unit 106 using computerusable program code, which may be located in a memory such as, forexample, main memory 108, ROM 124, or in one or more peripheral devices126 and 130, for example.

A bus system, such as bus 138 or bus 140 as shown in FIG. 1, may becomprised of one or more buses. Of course, the bus system may beimplemented using any type of communication fabric or architecture thatprovides for a transfer of data between different components or devicesattached to the fabric or architecture. A communication unit, such asmodem 122 or network adapter 112 of FIG. 1, may include one or moredevices used to transmit and receive data. A memory may be, for example,main memory 108, ROM 124, or a cache such as found in NB/MCH 102 in FIG.1.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 1 may vary depending on the implementation. Other internal hardwareor peripheral devices, such as flash memory, equivalent non-volatilememory, or optical disk drives and the like, may be used in addition toor in place of the hardware depicted in FIG. 1. Also, the processes ofthe illustrative embodiments may be applied to a multiprocessor dataprocessing system, other than the SMP system mentioned previously,without departing from the spirit and scope of the present invention.

Moreover, the data processing system 100 may take the form of any of anumber of different data processing systems including client computingdevices, server computing devices, a tablet computer, laptop computer,telephone or other communication device, a personal digital assistant(PDA), or the like. In some illustrative examples, data processingsystem 100 may be a portable computing device that is configured withflash memory to provide non-volatile memory for storing operating systemfiles and/or user-generated data, for example. Essentially, dataprocessing system 100 may be any known or later developed dataprocessing system without architectural limitation.

FIG. 2 depicts an example of road based indexing on spatial information.The example shows road based indexing with roads R-01, R-02, R-03, R-04,R-05, R-6, R-07. A point of interest (POI) is 45 m from R-05 and 87 mfrom R-04.

Questions to query:

Which vehicle trajectory passed the POI during 10:00 to 10:10 withspatial error bounds of 50 m?

Which vehicle trajectory passed the POI during 10:00 to 10:10 withspatial error bounds of 100 m?

Indexing data:

Vehicle trajectory A: R-03, R-04, R-07

Vehicle trajectory B: R-02, R-05

A prior solution identifies roads spatially near to the POI: R-04 andR-05, gets all trajectories whose indexing data includes R-04 or R-05and has points during 10:00 to 10:10, computes distance from each pointon matched vehicle trajectory to the POI. If a vehicle trajectory haspoints within the given spatial error bounds of the POI during the timeframe in the query, then the solution identifies the vehicle trajectoryas meeting the query; otherwise, the solution skips the vehicletrajectory.

FIG. 3 depicts an example of road based indexing on temporalinformation. The example shows road based indexing with roads R-01,R-02, R-03, R-04, R-05, R-06, R-07. A point of interest (POI) is 45 mfrom R-05 and 87 m from R-04.

Questions to query:

Which vehicle trajectory passed the POI about 10:00 with spatial errorbounds of 100 m and temporal error bounds of 5 min?

Which vehicle trajectory passed the POI about 10:00 with spatial errorbounds of 100 m and temporal error bounds of 30 min?

Indexing data:

Vehicle trajectory A: R-03, R-04, R-07

Vehicle trajectory B: R-02, R-05

A prior solution gets roads with projection distance to the POI lessthan 100 m: R-04 and R-05, gets all trajectories whose indexing dataincludes R-04 and R-05, and checks the timestamp of each point. If apoint is within the temporal bounds, then the solution returns true;otherwise, the solution considers the next point.

Current indexing does not consider precision factors for queries. Eachquery may have obvious or embedded precision needs. Better handling ofprecision needs can greatly reduce query effort and accelerate queryperformance while satisfying query accuracy. The illustrativeembodiments provide a mechanism to map precision needs and transform themapping to optimize query plans. In the illustrative embodiments, theprecision needs include acceptable spatial error bounds and acceptabletemporal error bounds, although other error bounds may be includedwithin the spirit and scope of the illustrative embodiments. Forinstance, the precision needs may include acceptable error bounds onspeed, elevation, or the like. As an example of spatial error bounds,the location whose distance to a given POI is less than 50 meters can beregarded as the one on the POI. As an example of temporal error bounds,a difference of 5 minutes between a queried time and actual time can beregarded as acceptable.

FIG. 4 is a block diagram illustrating a system for precision adaptivevehicle trajectory query plan optimization in accordance with anillustrative embodiment. A query precision identification and extractioncomponent 410 receives query condition 401 and context information 402.The context information 402 includes static information (e.g., roadnetwork metadata, vehicle metadata, point of interest (POI) or region ofinterest (ROI) metadata, etc.) and dynamic information (e.g., trafficinformation, vehicle trajectory patterns, driving behavior, etc.). Basedon query condition 401 and context information 402, query precisionidentification and extraction component 410 generates precision points411.

Query precision transformation component 420 receives precision points411 and query patterns 412. The query patterns 412 include a pointquery, region query, coordinate query, or the like. Based on precisionpoints 411 and query patterns 412, query precision transformationcomponent 420 generates query plan optimization factors 421.

Precision adaptive query optimization planning component 430 receivesquery plan optimization factors 421 and invokes and schedules theoptimization plan. The precision adaptive query optimization plan mayinclude vehicle trajectory indexing 440 and query accelerator 445.Vehicle trajectory indexing 440 may be road network based, grid based,etc. Query accelerator 445 includes filters, user defined fields (UDF)and/or user defined tables (UDT), etc. Precision adaptive queryoptimization planning component 430 invokes or schedules 431 vehicletrajectory indexing 440 and query accelerator 445 to relational database450 and No-SQL data repository 460.

FIG. 5A depicts a temporal precision support skeleton data structure inaccordance with an illustrative embodiment. The mechanism of theillustrative embodiment transforms a vehicle trajectory of a vehicle toa road passing sequence with detail of entering and leaving timestampsand offset. The mechanism builds the temporal precision support skeleton510 once for all trajectories when loading into the repository. Thetemporal precision support skeleton 510 is dynamic increasing.

Each row of the table for the temporal precision support skeleton 510comprises a segment of the vehicle trajectory on a given road. In thedepicted example, the four rows correspond to segments of vehicletrajectory T-01 on different roads. In the first row, vehicle trajectoryT-01 enters road R-01 at 10:01:20 on Oct. 12, 2013 at the 231 m spatialmark and leaves road R-01 at 10:02:01 on Oct. 12, 2013, at the 342 mspatial mark. The temporal precision support skeleton 510 may alsoinclude a speed distribution including the maximum and minimum speedsfor each segment/row.

FIG. 5B depicts a spatial precision support skeleton data processingsystem in accordance with an illustrative embodiment. The mechanism ofthe illustrative embodiment transforms multiple popular distances to thePOI to a (road: offset) range format. The spatial precision supportskeleton 520 is static increasing, because the POI and popular distanceare static to some extent. Intersected points on roads with otherdistances can be interpolated out.

In the depicted example, for POI 01, the spatial support skeleton 520includes the longitude/latitude of the POI. Each row of the tableincludes ranges of roads that are within given distances (i.e.,precision factors). For instance, road R-02 is within the 50 m precisionfactor between the 90 m and 130 m spatial marks and within the 200 mprecision factor between the 40 m and 150 m spatial marks.

FIG. 6 illustrates enhancing the precision support skeletons to form aspatial-temporal precision support skeleton data structure in accordancewith an illustrative embodiment. The mechanism of the illustrativeembodiments combines temporal precision support skeleton 601 and spatialprecision support skeleton 602 to form spatial-temporal precisionsupport skeleton 610. Each row of the table 610 represents a segment ofa vehicle trajectory T-01 that is not within a spatial precision factoror within a given spatial precision factor.

For example, the second row of temporal precision support skeleton 601includes the segments shown in the first row of spatial precisionsupport skeleton 602. These segments are broken out into the third andfourth rows of spatial-temporal precision support skeleton 610. Theentering time and ending time of these segments may be taken from rawglobal positioning system (GPS) sampling data from the vehicletrajectory or may be interpolated from sparse GPS samples and/orentering the entering time and ending time from temporal precisionsupport skeleton 601.

FIG. 7A illustrates temporal precision support for a vehicle trajectoryin accordance with an illustrative embodiment. In the depicted example,GPS data sampling points for the vehicle trajectory follow roads R-01,R-02, and R-03. As can be seen in FIG. 7A, there may be many individualGPS points, which results in a large amount of data to index. Themechanism of the illustrative embodiments reduces this data intosegments of the vehicle trajectory on each road.

FIG. 7B illustrates spatial precision support for a vehicle trajectoryin accordance with an illustrative embodiment. The mechanism of theillustrative embodiments reduces the roads into segments that are withinspatial precision ranges. In the depicted example, the mechanism showssegments of the roads that are within 50 m, 200 m, or 1 km.

FIG. 7C illustrates spatial-temporal precision support for a vehicletrajectory in accordance with an illustrative embodiment. Thespatial-temporal precision support is a combination of the temporalprecision support and the spatial precision support.

FIG. 8 illustrates an example of query internal processing for a systemwith precision adaptive trajectory query plan optimization in accordancewith an illustrative embodiment. For a given vehicle, the mechanism ofthe illustrative embodiments queries whether it passed a given point ofinterest (POI) within a certain time range. The POI is projected to beat the 800 m spatial marker on the mapped road link. For a mapped roadlink, a vehicle will pass if the vehicle trajectory is at particularspatial markers (700 m to 900 m) and within a given time range (10:06:10to 10:08:50).

Each query is for a vehicle trajectory with entering and leavingtimestamps. For query 01 from time 9:30 to time 9:55, the vehicletrajectory does not enter within the error bounds, and the query doesnot pass. As seen in FIG. 8, queries 01, 02, 03, and 04 do not pass, andthere is no need to query the raw data for these queries. On the otherhand, for queries 05, 06, and 07, the vehicle trajectory does enterwithin the error bounds for at least a portion of the time range;therefore, the query exact passing time depends on the temporalprecision needs.

FIG. 9 illustrates a data structure to include spatial-temporalprecision in accordance with an illustrative embodiment. The mechanismof the illustrative embodiments transforms queries on vehicle trajectorydata to queries on a spatial-temporal precision support skeleton datastructure to accelerate the query and to satisfy accuracy to someextent. The mechanism updates the precision support skeleton withoutconsidering more GPS data points.

For example, for a given vehicle, the mechanism determines when thevehicle passed a given POI and considers a range with distance 100 m ason-site and the result timestamp can have 5 seconds as the temporalerror bounds. For the spatial error bounds of 100 m, the mechanisminterpolates on the existing skeleton data of 50 m and 200 m. For thetemporal error bounds of 5 s, the mechanism enlarges the mapped timerange on the road and also performs road boundary checking.

As shown in FIG. 9, the updated temporal-spatial precision supportskeleton data structure 900 includes a new row for a segment of roadR-02 that is within the spatial error bounds of 100 m of the point ofinterest (POI). In this case, the vehicle trajectory is on road R-02within 100 m of the POI with an interpolated entering time of 10:02:09(±5 s), an entering measure of 70 m, an ending time of 10:02:52 (±5 s),and a leaving measure of 138 m. The process for answering the query isgreatly optimized.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

FIG. 10 is a flowchart illustrating operation of a system for precisionadaptive trajectory query plan optimization in accordance with anillustrative embodiment. In a preparation phase, the system builds aspatial-temporal precision support skeleton data structure (block 1001).The system builds the data structure based on context information andhistorical vehicle trajectory data and summarization. The contextinformation may include road network metadata, vehicle metadata, pointof interest (POI) and region of interest (ROI) metadata, etc. Thehistorical trajectory and summarization information may include trafficpoints, trajectory patterns, driving behavior, etc.

In an execution phase, the system identifies precision needs from queryinstances (block 1002). The system identifies the precision needs from aquery model and obvious/embedded precision sources. The query model mayinclude a point query, a region query, a coordinate query, etc. Theprecision sources may include query conditions, query internalprocessing, etc.

The system then refines the precision needs by the precision supportskeleton data structure (block 1003) using utilities for refinement. Theutilities may include, for example, map matching, road network matching,coordinate transformation, etc. The system then builds an optimizedquery plan (block 1004). The system uses No-SQL query utilities to buildthe query plan. The No-SQL query utilities may include, for example,indexing, filtering, user defined fields (UDF) and/or user definedtables (UDT), etc.

FIG. 11 is a flowchart illustrating operation of performing a query withprecision adaptive trajectory query plan optimization in accordance withan illustrative embodiment. Operation begins (block 1100), and thesystem receives a trajectory query (block 1101). The system determinespassing trajectories based on the precision support skeleton datastructure (block 1102). The system performs an optimized query for thepassing trajectories (block 1103). The system uses the precision supportskeleton data structure to narrow the query down to segments of thetrajectory and uses query utilities to query exact data points based onthe precision needs of the query. Thereafter, operation ends (block1104).

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

As noted above, it should be appreciated that the illustrativeembodiments may take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment containing both hardwareand software elements. In one example embodiment, the mechanisms of theillustrative embodiments are implemented in software or program code,which includes but is not limited to firmware, resident software,microcode, etc.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers. Network adapters mayalso be coupled to the system to enable the data processing system tobecome coupled to other data processing systems or remote printers orstorage devices through intervening private or public networks. Modems,cable modems and Ethernet cards are just a few of the currentlyavailable types of network adapters.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the describedembodiments. The embodiment was chosen and described in order to bestexplain the principles of the invention, the practical application, andto enable others of ordinary skill in the art to understand theinvention for various embodiments with various modifications as aresuited to the particular use contemplated. The terminology used hereinwas chosen to best explain the principles of the embodiments, thepractical application or technical improvement over technologies foundin the marketplace, or to enable others of ordinary skill in the art tounderstand the embodiments disclosed herein.

What is claimed is:
 1. A method, in a data processing system, forprecision adaptive trajectory query plan optimization, the methodcomprising: identifying, by the data processing system, precision needsbased on query instances, wherein the precision needs specify acceptableerror bounds, wherein the precision needs include acceptable spatialerror bounds and acceptable temporal error bounds; mapping, by the dataprocessing system, trajectory point data to the precision needs to forma precision support skeleton data structure, wherein the trajectorypoint data comprise GPS data sampling points for vehicle trajectories,wherein the precision support skeleton data structure comprises atemporal precision support skeleton table and a spatial precisionsupport skeleton table, wherein the temporal precision support skeletontable transforms each vehicle trajectory of each vehicle to a roadpassing sequence with detail of entering and leaving timestamps andoffset, wherein the spatial precision support skeleton table transformsmultiple popular distances to each point of interest to a road andoffset range format; generating, by the data processing system, anoptimized query plan; receiving, by the data processing system, a query;executing, by the data processing system, the optimized query plan onthe precision support skeleton data structure to identify at least onepassing trajectory that passes the query; and querying, by the dataprocessing system, the trajectory point data for the at least onepassing trajectory.
 2. The method of claim 1, wherein identifyingprecision needs comprises identifying the precision needs based oncontext information, wherein the context information comprises staticinformation and dynamic information.
 3. The method of claim 2, whereinthe static information comprises road network metadata, vehiclemetadata, or point of interest (POI) or region of interest (ROI)metadata.
 4. The method of claim 2, wherein the dynamic informationcomprises traffic information, vehicle trajectory patterns, or drivingbehavior.
 5. The method of claim 1, wherein mapping trajectory pointdata to the precision needs comprises generating query plan optimizationfactors based on a set of query patterns.
 6. The method of claim 5,wherein the set of query patterns comprises at least one of a pointquery, a region query, or a coordinate query.
 7. The method of claim 1,wherein the query optimization plan comprises vehicle trajectoryindexing and a query accelerator.
 8. The method of claim 7, wherein thevehicle trajectory indexing is road network based or grid based.
 9. Themethod of claim 7, wherein the query accelerator comprises at least oneof filters, user defined fields (UDF), or user defined tables (UDT). 10.The method of claim 7, wherein executing the optimized query plan on theprecision support skeleton data structure comprises applying the vehicletrajectory indexing and the query accelerator to a relational databaseand a No-SQL data repository.
 11. The method of claim 1, wherein eachrow of the temporal precision support skeleton table comprises a segmentof a vehicle trajectory on a given road.
 12. The method of claim 11,wherein each row of the spatial precision support skeleton tableincludes a range of a road that is within a given distance of a givenpoint of interest.
 13. The method of claim 12, wherein mapping thetrajectory point data to the precision needs to form the precisionsupport skeleton data structure comprises combining the temporalprecision support skeleton table and the spatial precision supportskeleton table to form a spatial-temporal precision support skeletontable.
 14. The method of claim 13, wherein each row of thespatial-temporal precision support skeleton table represents a segmentof a vehicle trajectory that is within a given spatial precision factoror not within the given spatial precision factor.
 15. The method ofclaim 14, further comprising determining an entering time that thevehicle trajectory entered the given spatial precision factor and anending time that the vehicle trajectory left the given spatial precisionfactor.
 16. The method of claim 15, wherein determining the enteringtime and the ending time comprises determining the entering time or theending time from the trajectory point data.
 17. The method of claim 15,wherein determining the entering time and the ending time comprisesdetermining the entering time or the ending time by performinginterpolation based on the trajectory point data.
 18. The method ofclaim 13, wherein generating the optimized query plan comprisestransforming queries on the vehicle trajectory data to queries on theprecision support skeleton and updating the precision support skeletonwithout considering more vehicle trajectory data.
 19. A computer programproduct comprising a computer readable storage medium having a computerreadable program stored therein, wherein the computer readable program,when executed on a computing device, causes the computing device to:identify precision needs based on query instances, wherein the precisionneeds specify acceptable error bounds, wherein the precision needsinclude acceptable spatial error bounds and acceptable temporal errorbounds; map trajectory point data to the precision needs to form aprecision support skeleton data structure, wherein the trajectory pointdata comprise GPS data sampling points for vehicle trajectories, whereinthe precision support skeleton data structure comprises a temporalprecision support skeleton table and a spatial precision supportskeleton table, wherein the temporal precision support skeleton tabletransforms each vehicle trajectory of each vehicle to a road passingsequence with detail of entering and leaving timestamps and offset,wherein the spatial precision support skeleton table transforms multiplepopular distances to each point of interest to a road and offset rangeformat; generate an optimized query plan; receive a query; execute theoptimized query plan on the precision support skeleton data structure toidentify at least one passing trajectory that passes the query; andquery the trajectory point data for the at least one passing trajectory.20. An apparatus comprising: a processor; and a memory coupled to theprocessor, wherein the memory comprises instructions which, whenexecuted by the processor, cause the processor to: identify precisionneeds based on query instances, wherein the precision needs specifyacceptable error bounds, wherein the precision needs include acceptablespatial error bounds and acceptable temporal error bounds; maptrajectory point data to the precision needs to form a precision supportskeleton data structure, wherein the trajectory point data comprise GPSdata sampling points for vehicle trajectories, wherein the precisionsupport skeleton data structure comprises a temporal precision supportskeleton table and a spatial precision support skeleton table, whereinthe temporal precision support skeleton table transforms each vehicletrajectory of each vehicle to a road passing sequence with detail ofentering and leaving timestamps and offset wherein the spatial precisionsupport skeleton table transforms multiple popular distances to eachpoint of interest to a road and offset range format; generate anoptimized query plan; receive a query; execute the optimized query planon the precision support skeleton data structure to identify at leastone passing trajectory that passes the query; and query the trajectorypoint data for the at least one passing trajectory.